package xx.services.entity.inter;

import javax.ws.rs.PathParam;
import javax.ws.rs.QueryParam;

/**
 * 文件管理服务接口
 * 
 * @Path (Constants.RESTFUL_ROOT_PATH + "/file")
 * @author chenx
 */
public interface IXfileInterface
{
    /**
     * 上传文件
     * 
     * @POST
     * @param entityId-@QueryParam("entity_id")
     *            上传完成后关联到实体的ID，可选参数
     * @param pictureId-@QueryParam("picture_id")
     *            上传完成后关联到实体图片的ID，可选参数
     * @param attachId-@QueryParam("attach_id")
     *            上传完成后关联到附件的ID，可选参数
     * @param pathType-@QueryParam("path_type")
     *            返回文件的地址类型，只对图片有效，<br>
     *            取值为：small-返回小图地址，middle-返回中图，big-返回原图地址，默认返回文件的json数据
     * @return 上传文件实体
     */
    public String upload(@QueryParam("entity_id")
    long entityId, @QueryParam("picture_id")
    long pictureId, @QueryParam("attach_id")
    long attachId, @QueryParam("path_type")
    String pathType);

    /**
     * 获取所有文件列表，最新上传的排在最前面<br>
     * 可根据文件类型（type）、文件大小（size）、上传时间（create_date）等筛选
     * 
     * @GET
     * @return 文件实体列表
     */
    public String getFile();

    /**
     * 删除文件
     * 
     * @DELETE
     * @Path ("/{file_id}")
     * @param fileId-@PathParam("file_id")
     *            文件ID，多个文件ID用“_”分隔
     * @return 文件实体列表
     */
    public String deleteFile(@PathParam("file_id")
    String fileId);
}
